package com.example.mapper;

import com.example.entity.KnowledgeSpace;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface KnowledgeSpaceMapper {
    
    /**
     * 获取用户可访问的所有知识空间
     */
    List<KnowledgeSpace> getAccessibleSpaces(@Param("username") String username);
    
    /**
     * 根据空间ID获取知识空间详情
     */
    KnowledgeSpace getSpaceById(@Param("spaceId") Integer spaceId);
    
    /**
     * 创建新的知识空间
     */
    int insertSpace(KnowledgeSpace space);
    
    /**
     * 更新知识空间信息
     */
    int updateSpace(KnowledgeSpace space);
    
    /**
     * 删除知识空间
     */
    int deleteSpace(@Param("spaceId") Integer spaceId);
    
    /**
     * 检查用户对空间的访问权限
     */
    String getUserSpaceRole(@Param("spaceId") Integer spaceId, @Param("username") String username);
    
    /**
     * 更新空间的文档数量
     */
    int updateDocumentCount(@Param("spaceId") Integer spaceId, @Param("count") Integer count);
}